package com.yc.cloud.wechat.pay.service;

import javax.servlet.http.HttpServletRequest;

import com.yc.cloud.wechat.pay.dto.PayNotifyDto;
import com.yc.cloud.wechat.pay.dto.QueryOrderByOutTradeNoDto;
import com.yc.cloud.wechat.pay.vo.WxPrepayWithRequestPaymentVo;
import com.yc.cloud.wechat.pay.dto.request.WxCreateOrderParam;

public interface WxPayService {

    /**
     * 创建微信预付订单信息
     *
     * @param param 用户填写的订单信息
     * @return 微信预付订单返回体
     */
    WxPrepayWithRequestPaymentVo createOrder(WxCreateOrderParam param);

    /**
     * 解析预付款通知信息
     *
     * @return ture or false
     */
    PayNotifyDto payNotifyParser(HttpServletRequest request);

    /**
     * 查询订单信息
     *
     * @param orderNo    订单编号
     * @param merchantId 商户号
     * @return 订单信息
     */
    QueryOrderByOutTradeNoDto queryOrderByOutTradeNo(String orderNo, String merchantId);
}
